home *** CD-ROM | disk | FTP | other *** search
- /*=====[ The TesSeRact(TM) CXL User Interface Development System ]======*
- | Copyright (c) 1987-1990, Innovative Data Concepts. All Rights Reserved
- |
- | This Library is part of IDC's TesSeRact Development Tools product
- | line. For information about other IDC products, call 1-215-884-3373.
- *----------------------------------------------------------------------*
- | <TCXLent.h> : Public definitions and prototypes for TCXL Data-entry
- | system (User level).
- *----------------------------------------------------------------------*
- | PGS : $Id: tcxlent.h 5.51 90/10/01 00:00:00 MLM Release Locker: MLM $
- | $Log: tcxlent.h $
- | Revision 5.51 90/10/01 00:00:00 MLM
- | TCXL 5.51
- |
- *======================================================================*/
- #ifndef _TCXLent_
- # define _TCXLent_ 1
- # ifndef _TCXLwin_
- # include <TCXLwin.h> /* window definitions */
- # endif
- /*- EntFld() field feature bits -*/
- #define FLD_NUL 0x0000 /* no special features defined */
- #define FLD_LWR 0x0001 /* convert to lowercase */
- #define FLD_UPR 0x0002 /* convert to uppercase */
- #define FLD_MIX 0x0004 /* convert to mixed case */
- #define FLD_PAS 0x0008 /* do not echo typed-in chars */
- #define FLD_NUM 0x0010 /* numeric field */
- #define FLD_CUR 0x0020 /* currency field */
- #define FLD_NWR 0x0040 /* no auto-wrap to next field */
- #define FLD_LJS 0x0080 /* left justify */
- #define FLD_RJS 0x0100 /* right justify */
- #define FLD_TRM 0x0200 /* trim end spaces */
- /*- EntFld() field edit-modes ---*/
- #define FLD_INI 0x00 /* initial mode */
- #define FLD_CHG 0x01 /* change mode */
- #define FLD_CND 0x02 /* conditional-update mode */
- /*- field movement bits ---------*/
- #define FDF_MOV 0x0F /* movement */
- #define FDF_BEG 0x01 /* to first field */
- #define FDF_END 0x02 /* to last field */
- #define FDF_UP 0x04 /* to previous field */
- #define FDF_DWN 0x08 /* to next field */
-
- /*------------------[ Data objects and access macros ]------------------*/
-
- TYP struct Edf EdfT, *EdfP;
- TYP struct Fdf FdfT, *FdfP;
-
- struct Edf /*-[ Entry-form object ]---------*/
- { FdfP etop; /* 00|00 : head FdfT */
- FdfP efld; /* 02|04 : current FdfT */
- WfipCP eget; /* 04|08 : alternate getkey() */
- WrdP etrm; /* 06|0C : terminating key */
- ChrP efmt; /* 08|10 : format pointer */
- ChrP ebfr; /* 0A|14 : buffer pointer */
- ChrP ebas; /* 0C|18 : buffer base */
- ChrP esep; /* 0E|1C : word-separators */
- VposT epos; /* 10|20 : window-position */
- BytT elen; /* 12|22 ; buffer-length */
- BytT edec; /* 13|23 : decimal position */
- BytT ectl; /* 14|24 : field-control flags */
- AtrT efat; /* 15|25 : field attribute */
- AtrT etat; /* 16|26 : text attribute */
- BytT efut; /* 17|27 : reserved for future */
- }; /* 18|28 ]-----------------------*/
-
- GBL EdfP CDC _EntCtl; /*- Global entry-form pointer ------------*/
- #define EdfTop(e) ((e)->etop) /* head FdfT */
- #define EdfFld(e) ((e)->efld) /* current FdfT */
- #define EdfGet(e) ((e)->eget) /* get function */
- #define EdfTrm(e) ((e)->etrm) /* terminating key */
- #define EdfFmt(e) ((e)->efmt) /* format pointer */
- #define EdfBfr(e) ((e)->ebfr) /* buffer pointer */
- #define EdfBas(e) ((e)->ebas) /* buffer base */
- #define EdfSep(e) ((e)->esep) /* word separators */
- #define EdfPos(e) ((e)->epos) /* window position */
- #define EdfPosW(e) (VposW(EdfPos(e))) /* word */
- #define EdfPosC(e) (VposC(EdfPos(e))) /* col */
- #define EdfPosR(e) (VposR(EdfPos(e))) /* row */
- #define EdfLen(e) ((e)->elen) /* field-length */
- #define EdfDec(e) ((e)->edec) /* decimal-position */
- #define EdfCtl(e) ((e)->ectl) /* entry-control */
- #define EdfFat(e) ((e)->efat) /* field attribute */
- #define EdfTat(e) ((e)->etat) /* text attribute */
-
- struct Fdf /*-[ Field-definition object ]---*/
- { FdfP fprv; /* 00|00 : previous FdfT */
- FdfP fnxt; /* 02|04 : next FdfT */
- ChrP fstr; /* 04|08 : input string */
- ChrP fbfr; /* 06|0C : buffer */
- ChrP ffmt; /* 08|10 : format string */
- IfcpCP fval; /* 0A|14 : "valid" function */
- VfvCP fbef; /* 0C|18 : "before" function */
- VfvCP faft; /* 0E|1C : "after" function */
- KeyT fkey; /* 10|20 : hot-key */
- WrdT fmsk; /* 12|22 : feature mask */
- TagT ftag; /* 14|24 : tag ID */
- TagT fhlp; /* 16|26 : help category */
- VposT fpos; /* 18|28 : input position */
- BytT fctl; /* 1A|2A : control flags */
- BytT flen; /* 1B|2B : length of buffer */
- BytT fdec; /* 1C|2C : decimal position */
- BytT ffut; /* 1D|2D : reserved for future */
- }; /* 1E|2E ]-----------------------*/
- #define FdfPrv(f) ((f)->fprv) /* previous FdfT */
- #define FdfNxt(f) ((f)->fnxt) /* next FdfT */
- #define FdfStr(f) ((f)->fstr) /* receiving string */
- #define FdfBfr(f) ((f)->fbfr) /* buffer pointer */
- #define FdfFmt(f) ((f)->ffmt) /* format string */
- #define FdfVal(f) ((f)->fval) /* "valid" function */
- #define FdfBef(f) ((f)->fbef) /* "before" function */
- #define FdfAft(f) ((f)->faft) /* "after" function */
- #define FdfKey(f) ((f)->fkey) /* hotkey */
- #define FdfMsk(f) ((f)->fmsk) /* feature mask */
- #define FdfTag(f) ((f)->ftag) /* tag ID */
- #define FdfHlp(f) ((f)->fhlp) /* help category */
- #define FdfPos(f) ((f)->fpos) /* position */
- #define FdfPosW(f) (VposW(FdfPos(f))) /* word */
- #define FdfPosC(f) (VposC(FdfPos(f))) /* col */
- #define FdfPosR(f) (VposR(FdfPos(f))) /* row */
- #define FdfCtl(f) ((f)->fctl) /* control flags */
- #define FdfMov(f) (0 != (FdfCtl(f) & FDF_MOV)) /* movement */
- #define FdfBeg(f) (0 != (FdfCtl(f) & FDF_BEG)) /* to first */
- #define FdfEnd(f) (0 != (FdfCtl(f) & FDF_END)) /* to last */
- #define FdfUp(f) (0 != (FdfCtl(f) & FDF_UP)) /* to previous */
- #define FdfDwn(f) (0 != (FdfCtl(f) & FDF_DWN)) /* to next */
- #define FdfLen(f) ((f)->flen) /* buffer length */
- #define FdfDec(f) ((f)->fdec) /* decimal position */
-
- /*------------------------[ Function prototypes ]-----------------------*/
-
- #ifdef __cplusplus /* no mangling, please */
- extern "C" {
- #endif
- /*- Entry-form ------------------*/
- IntT CTYP EntDef(IntT fa, IntT ta); /* Define entry form */
- IntT CTYP EntFld(IntT wr, IntT wc, /* Define entry field */
- ChrP ps, ChrP fs, IntT fm, TagT id, IntT md, IfcpCP vf, TagT ht);
- IntT CTYP EntKey(WfipCP gk, /* Set alternate getkey() and */
- WrdP tk); /* termination key */
- IntT CTYP EntSep(ChrP ws); /* Set word-separator string */
- IntT CTYP EntShow(NOARG); /* Display, process entry form */
- /*- Entry-field -----------------*/
- FdfP FldCur(NOARG); /* Current active field */
- IntT CTYP FldFun(VfvCP bf, /* Assign "before" and "after" */
- VfvCP af); /* functions */
- IntT CTYP FldKey(KeyT hk); /* Assign hot-key */
- FdfP CTYP FldLoc(TagT id); /* Find entry field <id> */
- #define FldCur() (EdfFld(_EntCtl))
- #ifdef __cplusplus
- }
- #endif
- #endif /* _TCXLent_ : End of TCXLent.h */